package com.hhkj.admin.sale.service.biz;

import com.hhkj.admin.order.domain.Order;
import com.hhkj.admin.sale.domain.SaleCommission;
import com.hhkj.admin.sale.model.req.SaleCommissionReq;
import com.hhkj.admin.sale.model.res.SaleCommissionRes;
import com.ruoyi.common.base.biz.service.biz.BaseBizService;
import org.apache.poi.ss.usermodel.Workbook;

import java.math.BigDecimal;

public interface SaleCommissionBizService extends BaseBizService<SaleCommission, SaleCommissionReq, SaleCommissionRes> {

    /**
     * 根据新订单，保存新的返利记录
     * @param order
     */
    void saveByOrder(Order order);

    /**
     * 重新计算返利佣金(计算退款过后的返佣，只计算24小时内退款)
     * @param orderId 订单id
     * @param orderPrice 变化后的订单价格
     * @return
     */
    boolean recalculatePrice(Long orderId, BigDecimal orderPrice);

    /**
     * 创建导出的excel
     * @param saleCommissionReq
     * @return
     */
    Workbook createExportWorkbook(SaleCommissionReq saleCommissionReq);

    /**
     * 检查返佣是否超过24小时并且订单不处于正在退款中的状态，如果是，则改变返佣记录状态为固定的
     * 并且将返利的佣金加入账户的余额
     */
    boolean updateStatusCodeAndAddBalance();
}
